#include <iostream>
#include <signal.h>
// volatile int gflag=0;
// void changedata(int signo)
// {
//     std::cout << "get a signo:" << signo <<",change gfalg 0->1" <<std::endl;
//     gflag=1;
// }
// int main() //没有代码对gflag进行修改
// {
//     signal(2,changedata);
//     while(!gflag);
//     std::cout<< "process quit normal" <<std::endl;    
// }


volatile int quit=0; //volatile使内存可视化，优化不再优化到寄存器，而是直接看内存
void handler(int signo)
{
    std::cout << signo << "号信号，正在被捕捉!" <<std::endl;
    std::cout<< "quit: " << quit;
    quit=1;
    std::cout<< "->" << quit << std::endl;

}
int main()
{
    signal(2,handler);
    while(!quit);
    std::cout<< "正常退出" << std::endl;
    return 0;
}